<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<!--父组件模板-->
<div id="app">
  <cpn @item-click="cpnClick"></cpn>
</div>

<!--子组件模板-->
<template id="cpn">
  <div>
    <button v-for="item in categories" @click="btnClick(item)">
      {{item.name}}
    </button>
  </div>
</template>

<script src="../js/vue.js"></script>
<script>
  // 子组件
  const cpn = {
    template: '#cpn',
    data() {
      return {
        categories: [
          {id: 'aaa', name: '热门推荐'},
          {id: 'bbb', name: '手机数码'},
          {id: 'ccc', name: '家用家电'},
          {id: 'ddd', name: '电脑办公'}
        ]
      }
    },
    methods: {
      btnClick(item) {
        console.log('子组件打印：', item);
        // 向父组件发射一个事件
        this.$emit('item-click', item);
      }
    }
  }

  // 父组件
  const app = new Vue({
    el: '#app',
    data: {
      message: '你好'
    },
    components: {
      'cpn': cpn
    },
    methods: {
      cpnClick(item) {
        console.log('父组件打印：', item);
      }
    }
  });
</script>
</body>
</html>